home *** CD-ROM | disk | FTP | other *** search
Wrap
ddddmmmmGGGGSSSSMMMMEEEEnnnnccccooooddddeeee((((3333ddddmmmm)))) ddddmmmmGGGGSSSSMMMMEEEEnnnnccccooooddddeeee((((3333ddddmmmm)))) NNNNAAAAMMMMEEEE dmGSMEncode - implements the European GSM 06.10 provisional standard for full-rate speech transcoding, prI-ETS 300 036, which uses RPE/LTP (regular pulse excitation/long term prediction) coding at 13 kbit/s. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS ####iiiinnnncccclllluuuuddddeeee <<<<ddddmmmmeeeeddddiiiiaaaa////ddddmmmm____aaaauuuuddddiiiioooouuuuttttiiiillll....hhhh>>>> DDDDMMMMssssttttaaaattttuuuussss ddddmmmmGGGGSSSSMMMMEEEEnnnnccccooooddddeeee((((DDDDMMMMGGGGSSSSMMMMeeeennnnccccooooddddeeeerrrr hhhhaaaannnnddddlllleeee,,,, sssshhhhoooorrrrtttt ****iiiibbbbuuuuffff,,,, uuuunnnnssssiiiiggggnnnneeeedddd cccchhhhaaaarrrr ****oooobbbbuuuuffff,,,, iiiinnnntttt nnnnuuuummmmSSSSaaaammmmpppplllleeeessss)))) PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRR _h_a_n_d_l_e DDDDMMMMGGGGSSSSMMMMeeeennnnccccooooddddeeeerrrr structure, created by ddddmmmmGGGGSSSSMMMMEEEEnnnnccccooooddddeeeerrrrCCCCrrrreeeeaaaatttteeee((((3333ddddmmmm)))), specifies the signal processing parameters. _i_b_u_f pointer to input sample data buffer, an array of size of a multiple of 160. The data format is short (16-bit). The samples are assumed to be two's complement. The sampling rate must be 8 kHz. _o_b_u_f pointer to output data buffer, an array of a multiple of 33 bytes. The data format is unsigned char (8-bit). _n_u_m_S_a_m_p_l_e_s number of sample in the input buffer to be processed. the value of numSamples passed to the GSM decode/decode routines must always be a multiple of 160. The compressed bitstrem buffer consists of a multiple of 33 bytes. RRRREEEETTTTUUUURRRRNNNNEEEEDDDD VVVVAAAALLLLUUUUEEEE Returns DDDDMMMM____FFFFAAAAIIIILLLLUUUURRRREEEE or DDDDMMMM____SSSSUUUUCCCCCCCCEEEESSSSSSSS. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ddddmmmmGGGGSSSSMMMMEEEEnnnnccccooooddddeeee((((3333ddddmmmm)))) implements GSM 06.10 compression. GSM compression uses a linear prediction scheme. This means that the compressed bits, which carrying compressed information, are interrelated or interdependent. If a application calls aaaaffffSSSSeeeeeeeekkkkFFFFrrrraaaammmmeeee((((3333ddddmmmm)))) to an offset into the compressed bit stream file and then starts reading bits in the middle of the bit stream and decompress them with ddddmmmmGGGGSSSSMMMMDDDDeeeeccccooooddddeeee((((3333ddddmmmm)))), the interdependency of the bits at the cutting point is lost. The application will initially get back data with a lower amplitude than if he had read the same data back during a complete pass over the file from the beginning. PPPPaaaaggggeeee 1111 ddddmmmmGGGGSSSSMMMMEEEEnnnnccccooooddddeeee((((3333ddddmmmm)))) ddddmmmmGGGGSSSSMMMMEEEEnnnnccccooooddddeeee((((3333ddddmmmm)))) There is no way to exactly recreate the decoded data in the middle of the bit stream file without going all the way back to the beginning. However, with a "preroll" value to read ahead a portion of the compressed file, application can compensate for the amplitude problem. NNNNOOOOTTTTEEEE The compressed bitrate now is 13200 bits/s. This is not the same as standard specification of 13000 bits/s because the first 4 bits of each 33 byte are not useful information bits. This bits arrangement was adopted using the original scheme by Jutta Degener (jutta@cs.tu- berlin.de) and Carsten Bormann (cabo@cs.tu-berlin.de), Communications and Operating Systems Research Group, TU Berlin for compatibility with typical UNIX applications. And may be modify later. GSM algorithm was developed for sampling rate of 8 kHz. SSSSEEEEEEEE AAAALLLLSSSSOOOO dmGSMEncoderCreate(3dm), dmGSMEncoderDestroy(3dm), dmGSMDecode(3dm), ETSI GSM 06.10 standard. PPPPaaaaggggeeee 2222